LoadLibrary加载动态库失败的解决办法 |
您所在的位置:网站首页 › loadlibrary failed:7e › LoadLibrary加载动态库失败的解决办法 |
方式一:LoadLibraryEx 转载:http://blog.sina.com.cn/s/blog_62ad1b8101017qub.html 若DLL不在调用方的同一目录下,可以用LoadLibrary(L"DLL绝对路径")加载。但若调用的DLL内部又调用另外一个DLL,此时调用仍会失败。解决办法是用 LoadLibraryEx,通过指定 LOAD_WITH_ALTERED_SEARCH_PATH,让系统DLL搜索顺序从DLL所在目录开始。 LoadLibraryEx("DLL绝对路径", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
方式二:SetCurrentDir 转载:http://blog.csdn.net/flyayi2006/article/details/5526982 跨目录调用dll,你应该这样: 1、用 GetCurrentDir 保存当前的工作目录 2、用 SetCurrentDir 将当前的工作目录,设置为你的DLL所在的路径,需要使用绝对路径 3、用 LoadLibrary 你的DLL 4、使用 SetCurrentDir 恢复到原来的工作路径 char szCurDir[MAX_PATH] = { 0 }; GetCurrentDirectory(MAX_PATH, szCurDir); SetCurrentDirectory(strDllDir.c_str()); HINSTANCE hInstance = LoadLibraryEx(strDllPath.c_str(), NULL, LOAD_WITH_ALTERED_SEARCH_PATH); SetCurrentDirectory(szCurDir); if (hInstance == NULL) { MessageBox("加载DLL失败"); } else { MessageBox("加载DLL成功"); }
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |